<!DOCTYPE html>
<html>
<head>
    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-110058241-3"></script>
    <script>
        window.dataLayer = window.dataLayer || [];
        function gtag(){dataLayer.push(arguments);}
        gtag('js', new Date());

        gtag('config', 'UA-110058241-3');
    </script>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Asset allocation: ленивый портфель</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
    <link rel="manifest" href="/site.webmanifest">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
    <!-- <link rel="stylesheet" type="text/css" media="screen" href="main.css" /> -->
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script src="https://cdn.plot.ly/plotly-1.44.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
    <script src="misc.js" defer></script>
    <script src="dataFetch.js" defer></script>
    <script src="storeData.js" defer></script>
    <script src="ipc_data.js" defer></script>
    <script src="makePlot.js" defer></script>
    <script src="updatePlot.js" defer></script>
    <script src="main.js" defer></script>
    <script src="makePortfolio.js" defer></script>
    <script src="makeModel.js" defer></script>
    <script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML' async></script>
</head>
<body>
    <div class="container">
        <h3 class="text-center">Asset allocation: ленивый портфель</h3>
        <!-- <div id="bondPlot">Plotly chart will be drawn inside this DIV</div> -->
        <div id="graphDiv"><!-- Plotly chart will be drawn inside this DIV --></div>
        <!-- <div class="mx-auto"> -->
        
        <div class="form-check">
            <input class="form-check-input" type="checkbox" value="" id="flexCheckXlog" onClick="xLogSwtich(this)"/>
            <label class="form-check-label" for="flexCheckXlog">Логарифмичекая шкала</label>
        </div>
        
        <form onsubmit="return showModel(this)" id="settingsForm">
            <!-- <legend>Настройки портфеля</legend> -->
            <div class="form-row">
                <div class="form-group col-md-6">    
                    <label class="col-form-label col-form-label-sm" for="start-date">Дата начала инвестирования (можно указать кликом)</label>
                    <input class="form-control" type="date" id="start-date" value="" min="" max=""/>        
                </div>
                
                <div class="form-group col-md-6">   
                    <label class="col-form-label col-form-label-sm d-flex justify-content-center" for="balance-slider">MCFTRR: <span id="MCFTRR-share">50</span>%</label>
                    <input class="form-control" type="range" id="balance-slider" min="0" max="100" step="10" value="50"/>
                    <label class="col-form-label col-form-label-sm d-flex justify-content-center" for="balance-slider">RGBITR: <span id="RGBITR-share">50</span>%</label>
                </div>
            </div>
            <div class="form-row">
                <div class="form-group col-md-8">       
                    <input class="form-control" type="number" id="rebalance-period" value="" step = "1" min="1" max="700"/>
                    <label class="col-form-label col-form-label-sm" for="rebalance-period">Периодичность ребалансировки, дней</label>
                    <!-- <label for="rebalance-period">дней</label> -->
                </div>
                
                <div class="form-group col-md-2 col-6 d-flex justify-content-start align-items-start">    
                    <input class="btn btn-primary" type="submit" value="Построить" id="run-button" disabled/>
                </div>

                <div class="form-group col-md-2 col-6 d-flex justify-content-end align-items-start">    
                        <input class="btn btn-warning" type="button" value="Сбросить" onClick="window.location.reload(true)"/>
                </div>
            </div>
        </form>
        <!-- <div class="form-group">    
                <input class="btn btn-warning ml-sm-2" type="button" value="Сбросить" onClick="window.location.reload()"/>
        </div> -->
        <!-- </div> -->
        <p>Перед вами графики индексов Московской биржи. Данные загружаются в процессе открытия этой страницы с их сайта (по API). Новые значения появляются каждый торговый день. Мы будем рассматривать портфель, состоящий только из двух групп активов: акций и облигаций.</p>

        <dl class="mt-3">
            <dt><a href="https://www.moex.com/ru/index/totalreturn/MCFTR">MCFTRR</a></dt>
            <dd>Индекс полной (т.е. с учетом дивидендов и их реинвестирования) доходности акций. Нетто, по ставкам налогообложения резидентов РФ (т.е. минус налог на дивиденды).</dd>
            
            <dt><a href="https://www.moex.com/ru/index/RGBITR/info/">RGBITR</a></dt>
            <dd>Индекс государственных облигаций (ОФЗ), посчитанный методом совокупного дохода (т.е. с учетом купонного дохода).</dd>
            
            <dt><a href="http://www.gks.ru/free_doc/new_site/prices/potr/tab-potr1.htm">ИПЦ</a></dt>
            <dd>Индекс потребительских цен на товары и услуги. Характеризует инфляцию. Представлен справочно и не обновляется автоматически. </dd>

            <dt><a href="https://en.wikipedia.org/wiki/Compound_annual_growth_rate">CAGR</a></dt>
            <dd>Compound annual growth rate. Совокупная годовая скорость роста. Такая ставка сложного процента (т.е. как ставка по вкладу в банке с годовой капитализацией процентов), которая приведет к аналогичному росту за аналогичный период. Альтернативное объяснение: CAGR - частный случай <a href="https://en.wikipedia.org/wiki/Internal_rate_of_return">IRR</a> (который можно рассчитать аналитически),  когда в cash flow все инвестиции приходятся на первый период, а все положительные потоки - на последний. </dd>
        </dl>        

        <hr>
        <p>В качестве акций выступает индекс <a href="https://www.moex.com/ru/index/totalreturn.aspx">MCFTRR</a>: индекс полной (т.е. с учетом дивидендов) доходности акций. Он будет моделировать ситуацию покупки акции этих компаний в тех же долях, в каких они входят в индекс.</p>

        <p><a href="https://www.moex.com/ru/index/RGBITR/info/">RGBITR</a>: индекс государственных облигаций, посчитанный методом совокупного дохода (т.е. с учетом купонов). </p>
        
        <p>Настройте портфель в соответствии с вашими пожеланиями и нажмите "Построить". Вы можете выбирать дату начала инвестирования. Если дата будет меняться, данные по индексам будут пересчитываться так, чтобы в указанную дату каждый из них имел условную стоимость равную единице. Так что бы в можно было видеть, во сколько раз выросли показатели относительно момента начала инвестирования.</p>

        <hr>
        <h5>Это что такое?</h5>
        
        <p><a href="https://en.wikipedia.org/wiki/Asset_allocation">Asset allocation</a>, что можно перевести как "распределение активов" - это вид стратегий портфельного инвестирования. Их смысл в распределении капитала между разными группами активов в какой-то пропорции. Пример: акции, облигации, золото как 40/20/20. Проходит время, какие-то активы вырастают, какие-то падают. Подразумевается, что в какой-то момент, вы выравниваете пропорции продавая то что выросло и покупая то что упало.</p>

        <p>В группе стратегий Asset allocation можно выделить одну простую и интересную идею инвестирования. Ее преимущество в том, что она доступна всем, не требует никаких специальных знаний и навыков. Она очень проста в управлении: не нужно разбираться в отчетности компаний, следить за новостями и ситуацией на рынке. На английском ее часто называют как "Lazy portfolio", на русский переводят как "Ленивый портфель", "Портфель простака", "Портфель лежебоки".</p>

        <p>Вы выбираете классы активов и пропорции, в которых они будут входить в ваш портфель. Покупаете. И забываете о портфеле на какой-то условленный срок: например, год-полтора. По прошествии этого срока возвращаетесь и производите ребалансировку: что-то продаете, а что-то покупаете так, чтобы восстановить изначальный баланс. Далее продолжаете в том же духе.</p>

        <p>Пример портфеля: 60% акции, 40% облигации. Ребалансировка - раз в год. В самом начале инвестирования распределяем капитал в соответствии с пропорцией 60/40. Проходит год. За это время стоимость наших вложений изменилась. Допустим, текущая стоимость акций в портфеле к его облигационной части стала 80/20. Тогда мы продаем акции и покупаем облигации так, чтобы вернуть свои изначальные 60/40. Проходит следующий год, и все повторяется.</p>

        <p>Важно: акции - это не одна какая-то акция, они должны быть диверсифицированы. Акции - это класс активов. Пожалуй, самым простым (у нас же ленивая стратегия!) и надежным выбором будет покупка акций, которые входят в индекс биржи, в тех же пропорциях. Например, на Московской бирже есть <a href="https://www.moex.com/ru/index/MOEXBC/constituents/">индекс "Голубых фишек"</a> - 15 наиболее ликвидных акций (разные акции входят в индекс в разных долях, это можно увидеть по ссылке). Есть более узкий - <a href="https://www.moex.com/ru/index/MOEX10/constituents/">ТОП10 компаний</a>, или более широкий и самый известный, который так и называется - <a href="https://www.moex.com/ru/index/IMOEX/constituents/">индекс МосБиржи</a>.</p>

        <p>Думаю, если у вас не миллиарды, индексы ТОП10 или ТОП15 будут оптимальными с точки зрения удобства и диверсификации.

        <p>Аналогично с облигациями. Но, на практике, если брать только ОФЗ (Облигации федерального займа - облигации, выпущенные государством, т.е. самые надежные), можно позволить более слабую диверсификацию. Сегодня (2019 г.), если не брать в расчет облигации преддефолтных компаний, ОФЗ дают плюс-минус такую же доходность что и облигации других организаций. И это при несравненно меньших рисках и большей ликвидности. Большого смысла выбирать что-то кроме ОФЗ для облигационной части портфеля нет.</p>

        <p>Самое интересное, что порой (как правило такое начинает происходить через длительный промежуток времени), такая стратегия может приносить вам доход больший, чем инвестирование в любую группу активов по отдельности. Почему? Подразумевается, что в следствие цикличности рынка, разные классы активов то растут, то падают, то опять растут. Иногда, и это желательное поведение, они двигаются разнонаправленно. Эта стратегия вынуждает вас продавать то что выросло в цене и покупать то что упало, а потом опять и опять - т.е. порой ловить рост разных активов.</p>
        
        <hr>
        <h5>Ожидаемая доходность, CAGR и выбор параметров портфеля</h5>
        <p>Так какие параметры портфеля выбрать? И, самое главное, какую доходность можно ожидать? Сначала нужно ответить на второй вопрос: как оценить доходность портфеля, а потом можно будет сравнить по этому показателю разные портфели между собой.<p>

        <p>Тут можно было бы взять CAGR - показатель, характеризующий годовую доходность вложений. Но за какой период? И справедливо ли будет выбрать произвольно какой-то один период для этих целей? Посмотрим на MCFTRR на графике вверху страницы. На текущий момент (январь 2019 года) его CAGR равен 1,16.</p>
        
        <p>Но что, если нам просто повезло? Ведь дата начала расчета выбрана произвольно: это просто дата с которой начали публиковать индекс MCFTRR (26.02.2003). Аналогично выбрана конечная дата расчета CAGR - сегодняшний день. Что, если случайно эти даты выбраны слишком удачно/не удачно?</p>
        
        <p>На том же графике вы можете смоделировать ленивый портфель выбрав дату начала инвестиций на пике перед обвалом 2008 года. К этой дате будут приведены и индексы - для сравнения с вашим портфелем. Вы увидите, что CAGR по MCFTRR стал где-то 1,06! Аналогично, выбрав датой начала самое дно кризиса 2008 года, вы можете получить почти 1.2! Так на какой CAGR можно было бы рассчитывать в среднем?</p>

        <p>Кажется, на этот вопрос можно дать ответ как-то усреднив значения показателя, взятые по разным периодам. Предлагаю сделать так: посчитаем CAGR для каждого из всех возможных периодов. Начнем с 26.02.2003 по сегодняшний день, затем с 27.02.2003... и так далее до последнего периода длиной в 0 дней (с сегодня по сегодня). На данный момент это 5 838 периодов (но каждый торговый день их количество будет увеличиваться на 1 - ведь на этой странице значения индексов дополняются; так что ваш опыт может быть иным).</p>

        <p>При этом есть ощущение, что чем длиннее период, по которому считается CAGR - тем более устойчивое значение мы получаем. Ведь на коротком периоде даже незначительное колебание итогового значения индекса приведет к относительно сильному изменению CAGR. Хочется как-то учесть это соображение, и не усреднять равноправно значения CAGR взятые на периодах в 5 000 и в 2 дня. </p>

        <p>Тогда значениям CAGR можно дать веса: пусть показатель, взятый за период в 5 838 дней имеет вес в 5 838, за период в 5000 дней - вес в 5000, за период в 2 дня - 2. Мы перемножим значения CAGR и их веса, сложим, и разделим на сумму всех весов.</p> 

        <p>Тоже самое в формульном виде:  <img src="weighetCAGR1.gif" style="margin: 20px 5px 0px 20px">, где <em>f</em> - самая ранняя дата для расчетов, <em>l</em> - последняя дата, <em>c</em> - текущая, стремится от <em>f</em> к <em>l</em> каждый раз прибавляя по дню, <em>(l-c)</em> - разница между датами в днях.</p>
        
        <p>Или, если развернуть расчет CAGR, то:  <img src="weighetCAGR2.gif" style="margin: 20px 0px 5px 20px">, где <em>val_с</em>, <em>val_l</em> - значения индекса на соответствующие даты.</p>

        <p>Теперь у нас есть показатель - <em>weightedCAGR</em>. Рассчитаем его для разных соотношений акций/облигаций, а также для разных периодов ребалансировки. Именно это будет происходить на графике ниже если нажать кнопку "Рассчитать".</p>
        
        <div id="simDiv"><!-- Plotly chart will be drawn inside this DIV --></div>

        <form>
            <div class="form-row">
                <div class="form-group col-md-6">    
                        <input class="btn btn-primary" type="button" value="Расчитать" id="run-button2" disabled onClick="startSimulation()"/>
                </div>
            </div>
        </form>
        
        <p>Для расчетов выбраны периоды ребалансировки из массива: [1, 7, 30, 90, 182, 365, 182+365, 365*2] </p>

        <p>Интересен не только <em>weightedCAGR</em> как некая средняя доходность. Но и то, насколько большой разброс вокруг этой средней у всех CAGR по всем периодам. Для этого, параллельно, на графике ниже отображается <a href="https://ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B5%D0%B4%D0%BD%D0%B5%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D1%82%D0%BA%D0%BB%D0%BE%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5">стандартное отклонение</a> значений CAGR от среднего (<em>weightedCAGR</em>). Это некая мера волатильности доходности.</p>

        <p>На самом деле сейчас <em>weightedCAGR</em> учитывает не все возможные периоды расчета CAGR (как в формуле), а лишь каждые 60 - иначе слишком долго считает. Может быть потом получится оптимизировать код с точки зрения производительности и считать каждый день. Тем не менее, по моим тестам результаты плюс-минус одинаковые.</p>

        <p>Разглядывая получившиеся графики можно сделать несколько выводов (январь 2019):
        <ul>
            <li>CAGR, в общем, растет с ростом доли акций.</li>
            <li>На январь 2019 CAGR для портфеля на 100% из облигаций более-менее совпадает с показателем из графика вверху страницы. А вот с CAGR по акциям, похоже, повезло, текущее значение 1.16, тогда как среднее 1.12.</li>
            <li>Есть ощущение, что доходность незначительно растет с уменьшение периода ребалансировки. Кажется, это можно объяснить тем, что более короткие периоды успевают отлавливать больше разнонаправленных движений стоимости разных активов на ограниченном временном промежутке.</li>
            <li>Если присмотреться к портфелям на 90% и 100% из акций, то можно заметить, что пара 90%-ых портфелей с короткими периодами ребалансировки превосходит в средней доходности портфель из 100% акций. Как видите, составной портфель из двух активов может превосходить по доходности каждый актив по отдельности. По идее, чем дольше период вложений, тем чаще такое будет случаться.</li>
            <li>С ростом доходности растет и стандартное отклонение от средней. При этом, если доходность растет замедляющимся темпом, то волатильность - ускоряющимся. При этом, есть ощущение, что чем реже проводится ребалансировка - тем больше отклонение (и, напомню, из пункта выше - тем меньше средняя доходность.) По всему, выходит, если не учитывать транзакционные издержки частой ребалансировки (например, если это делается автоматически), имеет смысл ребалансировать портфель часто. С другой стороны - разница на уровне десятых долей процента.</li>
        </ul>
        </p>
        <p>Еще раз хочу пояснить по ожидаемой доходности. В реальности она зависит от... удачи, или, иначе, от допущений о том какой информацией вы обладаете. Например, если вы (думаете что) в состоянии оценить перепроданность на рынке акций, очевидно, что, ожидая возможного снижения, вы не будете на 100% в акциях. И, наоборот, видя, что акции дешевы как никогда, предпочтете быть в акциях по максимуму. В этом случае ваша доходность будет выше средней.</p>

        <p>Но, в таком случае, ленивый портфель не для вас. Скорее, вы все так же будете распределять активы, но балансировать их будете не по формальному правилу - наступление даты ребалансировки, а в соответствии с вашими предположениями относительно ситуации на рынке. Да и навряд ли вы будет вкладываться в индекс, скорее вы предпочтете выбрать более узкий перечень наиболее перспективных бумаг.</p>
        
        <p>Кстати, то, что я описал в последних двух абзацах соответствует моей стратегии на рынке).</p>

        <p>Концепции ленивого портфеля больше соответствует предположение что раз уж вы не знаете какие именно бумаги включать в портфель (и вкладываетесь в какой-то индекс), раз уж вы формально подходите к вопросу ребалансировки (ребалансируя портфель через равные промежутки времени), то, наверное, вы так же не знаете в какой момент следует войти на рынок. А значит вам может с этим повезти, а может и нет, но, в среднем, вы можете ориентироваться на показатель <em>weightedCAGR</em>.</p>

        <p>Безусловно, остается открытым вопрос, почему <em>weightedCAGR</em> рассчитан именно таким образом. Например, можно выдвинуть такой аргумент против присвоения линейно бОльших весов показателям CAGR рассчитанных на больших периодах: чем длиннее период, чем раньше дата начала расчета - тем в большей степени расчет захватывает глубоко исторический, уже мало релевантный период. Ведь в экономике и на фондовом рынке все меняется, и далекое прошлое уже ничего не говорит о настоящем.</p>

        <p>Например, можно считать по-другому: допустим взять окно в 10 лет и считать по нему CAGR, двигая это окно от самой ранней даты, до последней возможной. После чего, усреднить показатель, придав каждому веса, наоборот, тем бОльшие чем ближе это окно к настоящему.<p>

        <p>Я же пока оставлю расчеты как есть. В свою защиту могу лишь высказать предположение, что разница будет незначительна. Например, я пробовал придать всем CAGR веса равные единице, т.е. просто взять среднее арифметическое по всем CAGR. Результаты получились очень похожи.</p> 
        
        <a href="https://www.web-stat.com">
            <img alt="Web-Stat traffic analysis" src="https://wts.one/7/5/1980900.png" width="1" height="1">
        </a>

        <footer style="display: flex; margin: 1em 0em 1em 1em;">
            <!-- <hr id="footer-hr" style="margin: 0 0 0 0;"> -->
            <span id="gh-link" style="margin-left: auto;">
                <a href="https://github.com/amchercashin/asset-allocation">
                <img height="16" width="16" src="https://cdn.jsdelivr.net/npm/simple-icons@latest/icons/github.svg" /> amchercashin/asset-allocation </a>
            </span>
            <span id="footer-date" style="margin: 0em 0em 0em 1em;">2019</span>
        </footer>

    </div>
    
</body>
</html>
